package com.ruoyi.project.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 项目库对象 a_05_project
 *
 * @author WorrilessGo
 * @date 2025-11-21
 */
public class A05Project extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 项目ID */
    private String projectId;

    /** 项目编码 */
    @Excel(name = "项目编码")
    private String projectNumber;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;

    /** 项目状态 */
    @Excel(name = "项目状态", readConverterExp = "1=未审核,2=已审核,3=已驳回")
    private Long projectStatus;

    /** 项目负责人 */
    @Excel(name = "项目负责人")
    private String projectLeader;


    /** 预计金额 */
    @Excel(name = "预计金额")
    private Double estimatedAmount;

    /** 申请日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申请日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date applicationDate;

//    /** 立项审核意见 */
//    @Excel(name = "立项审核意见")
//    private String reviewComments;

//    /** 审核人 */
//    @Excel(name = "审核人")
//    private String reviewer;

//    /** 审核日期 */
//    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "审核日期", width = 30, dateFormat = "yyyy-MM-dd")
//    private Date reviewerDate;

    /** 招标方 */
    @Excel(name = "招标方")
    private String tenderInviter;

    /** 最终报价 */
    @Excel(name = "最终报价")
    private Double finalQuotation;

    /** 投标结果 */
    @Excel(name = "投标结果", readConverterExp = "0=中标,1=未中标")
    private Long biddingResult;

    /** 开标日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开标日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date bidOpeningDate;

    /** 最终中标方 */
    @Excel(name = "最终中标方")
    private String finalWinningBidder;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String contractCode;

    /** 合同名称 */
    @Excel(name = "合同名称")
    private String contractName;

    /** 合同金额 */
    @Excel(name = "合同金额")
    private Double contractAmount;

    /** 签订日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签订日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signingDate;

    /** 收款金额 */
    @Excel(name = "收款金额")
    private Double paymentAmount;

    /** 支出金额 */
    @Excel(name = "支出金额")
    private Double expenseAmount;

    /** 结算金额 */
    @Excel(name = "结算金额")
    private Double settlementAmount;

    /** 验收结果 */
    @Excel(name = "验收结果")
    private String acceptanceResult;

    /** 验收日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "验收日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date acceptanceDate;

    /** 立项申请文件 */
    @Excel(name = "立项申请文件")
    private String fileOne;

//    /** 审核状态 */
//    @Excel(name = "审核状态")
//    private Integer reviewState;

    /** 招投标信息文件 */
    @Excel(name = "招投标信息文件")
    private String fileTow;

    /** 合同信息文件 */
    @Excel(name = "合同信息文件")
    private String fileThree;

    /** 项目总结 */
    @Excel(name = "项目总结")
    private String projectSummary;

    /** 项目总结文件 */
    @Excel(name = "项目总结文件")
    private String fileFour;

    /**收款附件*/
    @Excel(name = "收款附件")
    private String fileFive;



    /**信息来源*/
    @Excel(name = "信息来源")
    private String informationSource;


    /**项目简介*/
    @Excel(name = "项目简介")
    private String projectIntroduction;


    /**竞争对手*/
    @Excel(name = "竞争对手")
    private String competitors;

    public void setInformationSource(String informationSource) {
        this.informationSource = informationSource;
    }

    public String getInformationSource() {
        return informationSource;
    }

    public void setProjectIntroduction(String projectIntroduction) {
        this.projectIntroduction = projectIntroduction;
    }

    public String getProjectIntroduction() {
        return projectIntroduction;
    }

    public void setCompetitors(String competitors) {
        this.competitors = competitors;
    }

    public String getCompetitors() {
        return competitors;
    }

    public void setFileFive(String fileFive) {
        this.fileFive = fileFive;
    }

    public String getFileFive() {
        return fileFive;
    }

    public void setProjectId(String projectId)
    {
        this.projectId = projectId;
    }

    public String getProjectId()
    {
        return projectId;
    }

    public void setProjectNumber(String projectNumber)
    {
        this.projectNumber = projectNumber;
    }

    public String getProjectNumber()
    {
        return projectNumber;
    }

    public void setProjectName(String projectName)
    {
        this.projectName = projectName;
    }

    public String getProjectName()
    {
        return projectName;
    }

    public void setCustomerName(String customerName)
    {
        this.customerName = customerName;
    }

    public String getCustomerName()
    {
        return customerName;
    }

    public void setProjectStatus(Long projectStatus)
    {
        this.projectStatus = projectStatus;
    }

    public Long getProjectStatus()
    {
        return projectStatus;
    }

    public void setProjectLeader(String projectLeader)
    {
        this.projectLeader = projectLeader;
    }

    public String getProjectLeader()
    {
        return projectLeader;
    }

    public void setEstimatedAmount(Double estimatedAmount)
    {
        this.estimatedAmount = estimatedAmount;
    }

    public Double getEstimatedAmount()
    {
        return estimatedAmount;
    }

    public void setApplicationDate(Date applicationDate)
    {
        this.applicationDate = applicationDate;
    }

    public Date getApplicationDate()
    {
        return applicationDate;
    }

//    public void setReviewComments(String reviewComments)
//    {
//        this.reviewComments = reviewComments;
//    }
//
//    public String getReviewComments()
//    {
//        return reviewComments;
//    }

//    public void setReviewer(String reviewer)
//    {
//        this.reviewer = reviewer;
//    }
//
//    public String getReviewer()
//    {
//        return reviewer;
//    }

//    public void setReviewerDate(Date reviewerDate)
//    {
//        this.reviewerDate = reviewerDate;
//    }
//
//    public Date getReviewerDate()
//    {
//        return reviewerDate;
//    }

    public void setTenderInviter(String tenderInviter)
    {
        this.tenderInviter = tenderInviter;
    }

    public String getTenderInviter()
    {
        return tenderInviter;
    }

    public void setFinalQuotation(Double finalQuotation)
    {
        this.finalQuotation = finalQuotation;
    }

    public Double getFinalQuotation()
    {
        return finalQuotation;
    }

    public void setBiddingResult(Long biddingResult)
    {
        this.biddingResult = biddingResult;
    }

    public Long getBiddingResult()
    {
        return biddingResult;
    }

    public void setBidOpeningDate(Date bidOpeningDate)
    {
        this.bidOpeningDate = bidOpeningDate;
    }

    public Date getBidOpeningDate()
    {
        return bidOpeningDate;
    }

    public void setFinalWinningBidder(String finalWinningBidder)
    {
        this.finalWinningBidder = finalWinningBidder;
    }

    public String getFinalWinningBidder()
    {
        return finalWinningBidder;
    }

    public void setContractCode(String contractCode)
    {
        this.contractCode = contractCode;
    }

    public String getContractCode()
    {
        return contractCode;
    }

    public void setContractName(String contractName)
    {
        this.contractName = contractName;
    }

    public String getContractName()
    {
        return contractName;
    }

    public void setContractAmount(Double contractAmount)
    {
        this.contractAmount = contractAmount;
    }

    public Double getContractAmount()
    {
        return contractAmount;
    }

    public void setSigningDate(Date signingDate)
    {
        this.signingDate = signingDate;
    }

    public Date getSigningDate()
    {
        return signingDate;
    }

    public void setPaymentAmount(Double paymentAmount)
    {
        this.paymentAmount = paymentAmount;
    }

    public Double getPaymentAmount()
    {
        return paymentAmount;
    }

    public void setExpenseAmount(Double expenseAmount)
    {
        this.expenseAmount = expenseAmount;
    }

    public Double getExpenseAmount()
    {
        return expenseAmount;
    }

    public void setSettlementAmount(Double settlementAmount)
    {
        this.settlementAmount = settlementAmount;
    }

    public Double getSettlementAmount()
    {
        return settlementAmount;
    }

    public void setAcceptanceResult(String acceptanceResult)
    {
        this.acceptanceResult = acceptanceResult;
    }

    public String getAcceptanceResult()
    {
        return acceptanceResult;
    }

    public void setAcceptanceDate(Date acceptanceDate)
    {
        this.acceptanceDate = acceptanceDate;
    }

    public Date getAcceptanceDate()
    {
        return acceptanceDate;
    }

    public void setFileOne(String fileOne)
    {
        this.fileOne = fileOne;
    }

    public String getFileOne()
    {
        return fileOne;
    }

//    public void setReviewState(Integer reviewState)
//    {
//        this.reviewState = reviewState;
//    }
//
//    public Integer getReviewState()
//    {
//        return reviewState;
//    }

    public void setFileTow(String fileTow)
    {
        this.fileTow = fileTow;
    }

    public String getFileTow()
    {
        return fileTow;
    }

    public void setFileThree(String fileThree)
    {
        this.fileThree = fileThree;
    }

    public String getFileThree()
    {
        return fileThree;
    }

    public void setProjectSummary(String projectSummary)
    {
        this.projectSummary = projectSummary;
    }

    public String getProjectSummary()
    {
        return projectSummary;
    }

    public void setFileFour(String fileFour)
    {
        this.fileFour = fileFour;
    }

    public String getFileFour()
    {
        return fileFour;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("projectId", getProjectId())
                .append("projectNumber", getProjectNumber())
                .append("projectName", getProjectName())
                .append("customerName", getCustomerName())
                .append("projectStatus", getProjectStatus())
                .append("projectLeader", getProjectLeader())
                .append("estimatedAmount", getEstimatedAmount())
                .append("applicationDate", getApplicationDate())
//                .append("reviewer", getReviewer())
//                .append("reviewerDate", getReviewerDate())
                .append("tenderInviter", getTenderInviter())
                .append("finalQuotation", getFinalQuotation())
                .append("biddingResult", getBiddingResult())
                .append("bidOpeningDate", getBidOpeningDate())
                .append("finalWinningBidder", getFinalWinningBidder())
                .append("contractCode", getContractCode())
                .append("contractName", getContractName())
                .append("contractAmount", getContractAmount())
                .append("signingDate", getSigningDate())
                .append("paymentAmount", getPaymentAmount())
                .append("expenseAmount", getExpenseAmount())
                .append("settlementAmount", getSettlementAmount())
                .append("acceptanceResult", getAcceptanceResult())
                .append("acceptanceDate", getAcceptanceDate())
                .append("fileOne", getFileOne())
                .append("fileTow", getFileTow())
                .append("fileThree", getFileThree())
                .append("projectSummary", getProjectSummary())
                .append("fileFour", getFileFour())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .append("createBy", getCreateBy())
                .toString();
    }
}
